Skip to content

New validation for CSCwr51759 Cleanup vnsRsCIfAtt usage in service#394

Open
Harinadh-Saladi wants to merge 2 commits into
datacenter:v4.2.0-devfrom
Harinadh-Saladi:feature/vns-rscifatt-cleanup-check
Open

New validation for CSCwr51759 Cleanup vnsRsCIfAtt usage in service#394
Harinadh-Saladi wants to merge 2 commits into
datacenter:v4.2.0-devfrom
Harinadh-Saladi:feature/vns-rscifatt-cleanup-check

Conversation

@Harinadh-Saladi
Copy link
Copy Markdown
Contributor

Added a new pre-upgrade validation to detect missing vnsRsCIfAttN relations for existing vnsRsCIfAtt entries under the same cluster interface and target concrete interface.

Enclosed comprehensive logs for the same.

CSCwr51759_Test_Logs.txt

CSCwr51759_Pytest_Logs.txt

Full_script_run_logs.txt

relation_dn = relation_attributes["dn"].strip()
if not relation_dn:
continue
target_dn = get_target_dn(relation_attributes)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dn is the full path of the relationship object, and tDn is the path of the target interface object it is attached to.

No need of check for tDN.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i agree. its not resolved. at all.

continue
relation_attributes = vnsRsCIfAttN["vnsRsCIfAttN"]["attributes"]
if "dn" not in relation_attributes:
continue
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when mo is not configured, vnsRsCIfAttNs will be empty.. above if conditions not needed.



@check_wrapper(check_title="Cleanup vnsRsCIfAtt usage in services")
def vns_rscifatt_cleanup_check(tversion, **kwargs):
Copy link
Copy Markdown

@muthu-ku muthu-ku Jun 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change the proper function name and title

Comment thread docs/docs/validations.md

Impact:

If any `vnsRsCIfAtt` relation exists without a matching `vnsRsCIfAttN` for the same concrete interface target (`tDn`), the upgrade is outage-risky and should be treated as affected.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please update the document as per impact and requirement.

continue
missing_dn = old_relation_dn_by_key[relation_key]
tenant_name, device_name, logical_interface, concrete_interface = parse_relation_context(missing_dn)
data.append([tenant_name, device_name, logical_interface, concrete_interface, missing_dn])
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

where is that fault case handled for post upgrade case..

fault : F1690
uni/tn-CSCwj49418/lDevVip-test/lIf-intf-cons/vnsConfIssue-lif-invalid-CIf
Configuration is invalid due to LIf has an invalid CIf

Comment thread docs/docs/validations.md
[N9K-C9408 with more than 5 N9K-X9400-16W LEMs][d31] | CSCws82819 | :white_check_mark: | :no_entry_sign:
[Multi-Pod Modular Spine Bootscript File][d32] | CSCwr66848 | :white_check_mark: | :no_entry_sign:
[Inband Management Policy Misconfiguration][d33]| CSCwd40071 | :white_check_mark: | :no_entry_sign:
[Cleanup vnsRsCIfAtt usage in services][d34] | CSCwr51759 | :white_check_mark: | :no_entry_sign:
Copy link
Copy Markdown

@lovkeshsharma702 lovkeshsharma702 Jun 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Check missing vnsRsCIfAttN" ---> change the name

Comment thread docs/docs/validations.md
[d31]: #n9k-c9408-with-more-than-5-n9k-x9400-16w-lems
[d32]: #multi-pod-modular-spine-bootscript-file
[d33]: #inband-management-policy-misconfiguration
[d34]: #cleanup-vnsrscifatt-usage-in-services
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"check-missing-vnsRsCIfAttN"

Comment thread docs/docs/validations.md

This check will verify the count of the `svccoreCtrlr` Managed Object and raise and alarm with the bug if object count found more than 240. Remove the content or objects of `svccoreCtrlr` or `svccoreNode`. Contact Cisco TAC or upgrade to a release containing the fix for CSCws84232 before proceeding with an upgrade.

### Cleanup vnsRsCIfAtt usage in services
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change the name accordingly.

Comment thread docs/docs/validations.md

### Cleanup vnsRsCIfAtt usage in services

Due to [CSCwr51759][70], when targeting 6.0(3)+, having only `vnsRsCIfAtt` without the corresponding `vnsRsCIfAttN` under the same `vnsLIf` can leave service graph interface attachment in an inconsistent state.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wrong buug mentioned. Please do the cleanup for bogus info.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when upgrading to 6.0(3) and above, 'vnsRsCIfAtt' get deleted and without creating the corresponding 'vnsRsCIfAttN' under the same vnsLIf. this will leave service graph interface attachment in an inconsistent state

Comment thread docs/docs/validations.md

Impact:

If any `vnsRsCIfAtt` relation exists without a matching `vnsRsCIfAttN` for the same concrete interface target (`tDn`), the upgrade is outage-risky and should be treated as affected.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no need for this ---> If any vnsRsCIfAtt relation exists without a matching vnsRsCIfAttN for the same concrete interface target (tDn), the upgrade is outage-risky and should be treated as affected.

Comment thread docs/docs/validations.md

Suggestion:

Before the upgrade, add the missing `vnsRsCIfAttN` relation under the same cluster interface (`vnsLIf`) with the same concrete interface target (`tDn`).
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

specify the GUI path.. as discussed earlier

return Result(result=ERROR, msg="Error occurred while fetching svccore object counts: {}".format(str(e)), doc_url=doc_url)


@check_wrapper(check_title="Cleanup vnsRsCIfAtt usage in services")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change the name accordingly.

headers = ["Tenant", "Device Name", "Cluster Interface", "Missing Concrete Interface", "vnsRsCIfAtt DN"]
data = []
recommended_action = (
"Mo vnsRsCIfAtt is deprecated >=6.0(3d). Before upgrade, under Services, add the missing concrete interface as vnsRsCIfAttN under the same cluster interface"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not explainatery enough. please work on it.


vnsRsCIfAttNs = icurl("class", "vnsRsCIfAttN.json?rsp-prop-include=config-only")

def get_target_dn(relation_attributes):
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

look for whole DN, not just Tdn. . this seems wrong to me.
you will see one small diff there for RsCifAtt/RsCifAttN --> make sure you cover this while comparing DN.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants